package com.company.aicrawlers.service;

import com.company.aicrawlers.common.dto.PageResponse;
import com.company.aicrawlers.entity.Product;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 产品服务接口
 *
 * @author AI Crawlers Team
 * @date 2025-10-10
 */
public interface ProductService {
    
    /**
     * 分页查询产品列表
     *
     * @param page 页码
     * @param size 每页大小
     * @param keyword 搜索关键词（产品名称、品牌）
     * @param category 产品类别
     * @param isOurProduct 是否我方产品（1:是 0:否 null:全部）
     * @param status 状态
     * @return 分页数据
     */
    PageResponse<Product> getPageList(Integer page, Integer size, String keyword, 
                                      String category, Integer isOurProduct, Integer status);
    
    /**
     * 根据ID获取产品详情
     *
     * @param productId 产品ID
     * @return 产品对象
     */
    Product getById(Long productId);
    
    /**
     * 创建产品
     *
     * @param product 产品对象
     * @return 产品ID
     */
    Long create(Product product);
    
    /**
     * 更新产品
     *
     * @param product 产品对象
     */
    void update(Product product);
    
    /**
     * 删除产品
     *
     * @param productId 产品ID
     */
    void delete(Long productId);
    
    /**
     * 批量删除产品
     *
     * @param productIds 产品ID列表
     */
    void batchDelete(List<Long> productIds);
    
    /**
     * 批量导入产品（Excel）
     *
     * @param file Excel文件
     * @return 导入数量
     */
    Integer batchImport(MultipartFile file);
    
    /**
     * 获取所有产品类别
     *
     * @return 类别列表
     */
    List<String> getAllCategories();
    
    /**
     * 获取所有品牌
     *
     * @return 品牌列表
     */
    List<String> getAllBrands();
}

